package com.naiterui.ehp.bs.patient.vo.consult;

import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;

/**
 * 患者发起问诊参数
 *
 * @author fangguanhong
 * @date 2021/4/30 10:32 上午
 **/
@Data
public class ByConsultParamVO implements Serializable {
    private static final long serialVersionUID = 36682873563327078L;

    @ApiModelProperty(value = "病情id")
    private String id;

    @ApiModelProperty(value = "患者ID")
    private Long patientId;

    @NotNull(message = "就诊人ID不能为null")
    @ApiModelProperty(value = "就诊人id")
    private Long inquirerId;

    @ApiModelProperty(value = "就诊人与患者关系")
    private Integer relation;

    @ApiModelProperty(value = "患者姓名")
    private String patientName;
    @ApiModelProperty(value = "患者年龄")
    private Integer patientAge;
    @ApiModelProperty(value = "患者年龄单位，周、个月、岁")
    private String patientAgeUnit;
    @ApiModelProperty(value = "患者显示年龄(包含年龄单位)")
    private String patientAgeStr;
    @ApiModelProperty(value = "患者性别，0:女，1:男，2:未知")
    private Integer patientGender;
    @ApiModelProperty(value = "医生ID")
    private Long doctorId;
    /**
     * 线下就诊信息
     */
    @ApiModelProperty(value = "线下问诊医生名")
    @NotBlank(message = "请填写线下问诊医生姓名")
    private String offlineDoctor;
    @ApiModelProperty(value = "线下问诊医院名")
    @NotBlank(message = "请填写线下问诊医院名称")
    private String offlineHospital;
    @ApiModelProperty(value = "线下就诊医院ID")
    private Long hospitalId;
    @ApiModelProperty(value = "线下问诊科室名称")
    @NotBlank(message = "请填写线下问诊科室名称")
    private String offlineDepartment;
    @ApiModelProperty(value = "线下问诊诊断")
    @NotBlank(message = "请填写线下诊断")
    private String offlineDiagnosis;

    @Valid
    @ApiModelProperty(value = "线下病例/处方图片")
    private List<String> offlineERImgs;

    @ApiModelProperty(value = "线下问诊检查图片")
    private List<String> offlineDiagnosisImgs;

    /**
     * 病情描述信息
     */
    @ApiModelProperty(value = "病情主诉")
    @NotEmpty(message = "请填写病情主诉")
    @Size(min = 5, max = 1000, message = "病情主诉至少输入5个字")
    private String description;
    @ApiModelProperty(value = "患病时间")
    @NotNull(message = "请选择患病时间")
    private Integer cycleCode;
    private String diseaseCycle;
    @ApiModelProperty(value = "病情描述图片")
    private List<String> descriptionImgs;

    /**
     * 服药情况
     */
    @ApiModelProperty(value = "当前服用的药物描述")
    private String drugs;
    @ApiModelProperty(value = "处方图片或药盒图片")
    private List<String> drugsImgs;

    /**
     * 既往病史
     */
    @ApiModelProperty(value = "过敏记录描述")
    private String allergy;
    @ApiModelProperty(value = "过往病史描述")
    private String pastHistory;


    @ApiModelProperty(value = "创建时间")
    private Date createdAt;

    /**
     * 资料丢失标识(0，否；1，是)
     */
    @ApiModelProperty(value = "资料丢失标识(0，否；1，是)")
    private Integer dataLossTag;

    @ApiModelProperty(value = "问诊类型, 1:图文咨询，2：视频咨询")
    Integer consultType;
    @ApiModelProperty(value = "病情记录类型, 1:病历,2:病情描述")
    Integer type;
}
